package com.zmn.oms.model.query.redistribute;

import com.zmn.mcc.common.enums.DpermitEnum;
import com.zmn.mcc.permit.client.annotation.PermitDataType;
import com.zmn.oms.common.constant.OrderConsts;
import com.zmn.oms.common.enums.RedistributeAuditStatusEnum;
import com.zmn.oms.common.enums.RedistributeHelpStatusEnum;
import com.zmn.oms.model.entity.work.OrderBaseEsQuery;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 类描述: 工单改派 查询类
 *
 * @author: liudi
 * @since: 2022/05/11 21:37
 */
@Data
public class OrderWorkRedistributeQuery extends OrderBaseEsQuery implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 订单id
	 */
	private Long orderId;

	/**
	 * 工单id
	 */
	private Long workId;

	/**
	 * 改派申请id
	 */
	private Long redistributeId;

	/**
	 * 改派缘由ID
	 */
	private Integer reasonId;

	/**
	 * 改派缘由ID集合
	 */
	private List<Integer> reasonIdList;

	/**
	 * 核实的改派缘由id
	 */
	private Integer auditReasonId;

	/**
	 * 导出任务id
	 */
	private Integer exportTaskId;

	/**
	 * 平台标志：10啄木鸟，20言而有信，30一步维修SAAS，40川南环保
	 */
	private Integer plat;

	/**
	 * 订单类型：1 新单、2 返修单
	 */
	private Integer type;

	/**
	 * 工单类型
	 *
	 * @see OrderConsts#getOrderTypeList()
	 */
	private List<Integer> workTypeList;

	/**
	 * 工单状态 8 已创建 （暂时没用） 11 已下单 31 已确认 （平台确认） 34  已分单 41 已派单 51 已领单 61 已上门 71 已完成 81 已收单 91 已算账
	 */
	private Integer status;

	/**
	 * 工单状态List
	 */
	private List<Integer> workStatusList;

	/**
	 * 结果状态：1 进行中、2 成功、3 失败、4 弃单
	 */
	private Integer workResultStatus;

	/**
	 * 子公司id
	 */
	private Integer companyId;

	/**
	 * 子公司Id集合
	 */
	private List<Integer> companyIdOrGridCompanyIdList;

	/**
	 * 权限下子公司Id集合
	 */
	@PermitDataType(DpermitEnum.ORGANIZE_SUB)
	private List<Integer> permitCompanyIdList;

	/**
	 * 子公司名称
	 */
	private String companyName;

	/**
	 * 工单号code
	 */
	private Long code;

	/**
	 * 主工程师id
	 */
	private Integer masterId;

	/**
	 * 多个主工程师Id，用“,”分隔
	 */
	private String masterIds;

	/**
	 * 工程师主管id
	 */
	private Long masterSupervisorId;

	/**
	 * 用户电话
	 */
	private String concatPhone;

	/**
	 * 加密后的用户电话
	 */
	private String cryptoPhone;

	/**
	 * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
	 */
	private Integer bizType;

	/**
	 * 业务线
	 */
	private Integer bizLine;

	/**
	 * 业务线 集合
	 */
	private List<Integer> bizLineList;

	/**
	 * 产品分组ID
	 */
	private Integer servProductGroupId;

	/**
	 * 产品分组名称
	 */
	private String servProductGroupName;

	/**
	 * 渠道id
	 */
	private Integer channelId;

	/**
	 * 渠道id list
	 */
	private List<Integer> channelIdList;

	/**
	 * 服务分类
	 */
	private List<Integer> servCategIdList;

	/**
	 * 产品分组集合
	 */
	private List<Integer> servProductGroupIdList;

	/**
	 * 省份id
	 */
	private Integer provinceId;

	/**
	 * 省份IdList
	 */
	private List<Integer> provinceIdList;

	/**
	 * 城市id
	 */
	private Integer cityId;

	/**
	 * 城市IdList
	 */
	private List<Integer> cityIdList;

	/**
	 * 支付状态：1.未支付 2.支付中 3.部分支付 4.已支付 12.退款中 13.部分退款 14.已退款 15.退款失败 16.退款异常
	 */
	private Integer payStatus;

	/**
	 * 审核人Id
	 */
	private Integer auditerId;

	/**
	 * 审核类型 0无 1主管审核 2员工审核
	 */
	private Integer auditType;

	/**
	 * 审核人类型 0无 1主管审核 2员工审核
	 */
	private Integer auditerType;

	/**
	 * 审核状态
	 *
	 * @see RedistributeAuditStatusEnum
	 */
	private Integer auditStatus;

	/**
	 * 审核状态集合
	 */
	private List<Integer> auditStatusList;

	/**
	 * 求助状态
	 *
	 * @see RedistributeHelpStatusEnum
	 */
	private Integer helpStatus;

	/**
	 * 求助状态集合
	 */
	private List<Integer> helpStatusList;

	/**
	 * 改派状态
	 */
	private Integer redistributeStatus;

	/**
	 * 改派状态集合
	 */
	private List<Integer> redistributeStatusList;

	/**
	 * 虚假状态 1否 2是
	 */
	private Integer spuriousStatus;

	/**
	 * 是否计入轮次：1. 不计入 2. 计入
	 */
	private Integer countEnable;

	/**
	 * 发起时间
	 */
	private String redistributeApplyTime;

	/**
	 * 下单时间
	 */
	private Date receiveTime;

	/**
	 * 创建人
	 */
	private String creater;

	/**
	 * 最新修改人
	 */
	private String updater;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 最新修改时间
	 */
	private Date updateTime;
}